using System.Linq;
using ExorAIO.Utilities;
using LeagueSharp.SDK;
using LeagueSharp.SDK.Enumerations;
using EloBuddy.SDK.Menu.Values;

namespace ExorAIO.Champions.Lucian
{
    /// <summary>
    ///     The menu class.
    /// </summary>
    internal class Menus
    {
        /// <summary>
        ///     Sets the menu.
        /// </summary>
        public static void Initialize()
        {
            /// <summary>
            ///     Sets the menu for the Q.
            /// </summary>
            Vars.QMenu = Vars.Menu.AddSubMenu("使用 Q :");
            {
                Vars.QMenu.Add("combo", new CheckBox("连招", true));
                Vars.QMenu.Add("killsteal", new CheckBox("抢人头", true));
                Vars.QMenu.Add("laneclear", new Slider("清线 / 如果蓝量 >= x%", 50, 0, 101));
                Vars.QMenu.Add("jungleclear", new Slider("清野 / 如果蓝量 >= x%", 50, 0, 101));

                {
                    if (GameObjects.EnemyHeroes.Any())
                    {
                        /// <summary>
                        ///     Sets the Extended Q menu.
                        /// </summary>
                        Vars.Q2Menu = Vars.Menu.AddSubMenu("使用 最远 Q:");
                        {
                            Vars.Q2Menu.Add("excombo", new CheckBox("连招", true));
                            Vars.Q2Menu.Add("exkillsteal", new CheckBox("抢人头", true));
                            Vars.Q2Menu.Add("mixed", new Slider("混合 / 如果蓝量 >= %", 50, 0, 101));
                            Vars.Q2Menu.Add("exlaneclear", new Slider("清线 / 如果蓝量 >= %", 50, 0, 101));
                        }

                        /// <summary>
                        ///     Sets the Whitelist menu for the Extended Q.
                        /// </summary>
                        Vars.WhiteListMenu = Vars.Menu.AddSubMenu("扩展 骚扰: 名单");
                        {
                            Vars.WhiteListMenu.AddLabel("提示: 这个名单只适用于清线和混合模式.");
                            foreach (var target in GameObjects.EnemyHeroes)
                            {
                                Vars.WhiteListMenu.Add(target.ChampionName.ToLower(), new CheckBox($"骚扰: {target.ChampionName}", true));
                            }
                        }
                    }
                    else
                    {
                        Vars.QMenu.AddLabel("没有发现敌方英雄, 不需要启用最远Q.");
                    }
                }
            }

            /// <summary>
            ///     Sets the menu for the W.
            /// </summary>
            Vars.WMenu = Vars.Menu.AddSubMenu("使用 W:");
            {
                Vars.WMenu.Add("combo", new CheckBox("连招", true));
                Vars.WMenu.Add("killsteal", new CheckBox("抢人头", true));
                Vars.WMenu.Add("buildings", new Slider("拆建筑 / 如果蓝量 >= x%", 50, 0, 101));
                Vars.WMenu.Add("laneclear", new Slider("清线 / 如果蓝量 >= x%", 50, 0, 101));
                Vars.WMenu.Add("jungleclear", new Slider("清野 / 如果蓝量 >= x%", 50, 0, 101));
            }

            /// <summary>
            ///     Sets the menu for the E.
            /// </summary>
            Vars.EMenu = Vars.Menu.AddSubMenu("使用 E:");
            {
                Vars.EMenu.AddLabel("E 模式:");
                Vars.EMenu.AddLabel("[请记住无论什么模式突进将指向你的指针位置]");
                Vars.EMenu.AddLabel("Exory: 你一直使用的逻辑,智能的短距离与长距离突进.");
                Vars.EMenu.AddLabel("Normal: 这种逻辑会让你总是突进在最大距离.");
                Vars.EMenu.AddLabel("None: 这种逻辑将自动阻止连招使用E.");
                Vars.EMenu.Add("mode", new ComboBox("E 模式", 0, "Exory", "Normal", "None"));
                Vars.EMenu.Add("engager", new CheckBox("启用", true));
                Vars.EMenu.Add("gapcloser", new CheckBox("反突进", true));
                Vars.EMenu.Add("buildings", new Slider("拆建筑 / 如果蓝量 >= x%", 50, 0, 101));
                Vars.EMenu.Add("laneclear", new Slider("清线 / 如果蓝量 >= x%", 50, 0, 101));
                Vars.EMenu.Add("jungleclear", new Slider("清野 / 如果蓝量 >= x%", 50, 0, 101));
            }

            /// <summary>
            ///     Sets the menu for the R.
            /// </summary>
            Vars.RMenu = Vars.Menu.AddSubMenu("使用 R:");
            {
                Vars.RMenu.AddLabel("它是如何工作的:");
                Vars.RMenu.AddLabel("按下大招直到你想要停止大招.");
                Vars.RMenu.AddLabel("你不需要按空格键和半自动按钮,");
                Vars.RMenu.AddLabel("由于Exor奥巴马自动走砍R敌方,所以只需按下按钮.");
                Vars.RMenu.Add("bool", new CheckBox("半-自动 R", true));
                Vars.RMenu.Add("key", new KeyBind("按键:", false, KeyBind.BindTypes.HoldActive, 'T'));
            }

            /// <summary>
            ///     Sets the drawings menu.
            /// </summary>
            Vars.DrawingsMenu = Vars.Menu.AddSubMenu("线圈");
            {
                Vars.DrawingsMenu.Add("q", new CheckBox("Q 范围"));
                Vars.DrawingsMenu.Add("qe", new CheckBox("Q 最远 范围"));
                Vars.DrawingsMenu.Add("w", new CheckBox("W 范围"));
                Vars.DrawingsMenu.Add("e", new CheckBox("E 范围"));
            }
        }
    }
}